package main

// import "fmt"

// 浮点型
// func main() {
// 	a := 3.0
// 	b := 2.0
// 	fmt.Println(a / b)
// 	fmt.Println("变量a的类型为：", reflect.TypeOf(a))
// 	fmt.Println("变量b的类型为:", reflect.TypeOf(b))
// }

// 字符串

// func main() {
// 	str := "你好;hello"
// 	fmt.Println(str)
// }

// 多行字符串
// func main() {
// 	str := `这是第一行
// 这是第二行
// 	这是第三行
// 	` // 空格也会打印， 不需要换行符
// 	fmt.Println(str)
// }

// 字符和转义符
// func main() {
// 	enlish := 'a'
// 	chinese := '我'

// 	fmt.Println(enlish)
// 	fmt.Println(chinese)

// 	var enlish_str string = "a"
// 	var chinese_str string = "我"
// 	fmt.Println(enlish_str)
// 	fmt.Println(chinese_str)

// }

// 声明指针
// func main() {
// 	var p *int
// 	fmt.Println(p)
// }
// <nil>

// 取变量地址
// func main() {
// 	// num := 1
// 	// var p *int
// 	// p = &num
// 	// fmt.Println("num 变量的地址为:", p)
// 	// fmt.Println("指针变量p的地址为:", &p)
// 	// // 获取指针所指向的内容
// 	// fmt.Println("指针变量p所指向的内容:", *p)
// 	// // 指针声明后未赋值， 获取指针指向的地址内容会报错
// 	// // 利用指针修改值
// 	// *p = 10
// 	// fmt.Println("指针变量p所指向的内容:", *p)
// 	// fmt.Println("num变量值为:", num)
// 	var p1 *int
// 	// *p1 = 1

// 	// fmt.Println("指针p1所指向的内容:", *p1)
// 	// fmt.Println("指针p1所指向的地址:", &p1)
// 	p1 = new(int) // 重新给指针分配地址并初始化地址对应的值
// 	*p1 = 10
// 	fmt.Println("指针p1所指向的内容:", *p1)
// 	fmt.Println("指针p1所指向的地址:", &p1)
// }

// 字符串拼接
// func main() {
// 	a := "012345"
// 	b := "6789"
// 	c := a + b
// 	fmt.Println(c)
// }

// 拼接字符串较长时 可使用字节缓冲
// import (
// 	"bytes"
// 	"fmt"
// 	"reflect"
// )

// func main() {
// 	a := "012345"
// 	b := "6789"
// 	var c bytes.Buffer
// 	c.WriteString(a)
// 	c.WriteString(b)
// 	fmt.Println(c.String())
// 	fmt.Println(reflect.TypeOf(c))
// }

// 字符串截取
// import (
// 	"fmt"
// 	"strings"
// )

// func main() {
// 	// str := "Go语言"
// 	str := "Go语言, Python语言"
// 	// index := strings.Index(str, "语")
// 	index := strings.LastIndex(str, "语")
// 	fmt.Println(index)
// 	fmt.Println(str[index:])
// 	fmt.Println(str[index : index+1]) // 此处索引对应Python有区别
// }

// 修改字符串 无法直接修改字符串， 先转换为字节数组后再操作
// import (
// 	"fmt"
// )

// func main() {
// 	str := "Go语言"
// 	bytes := []byte(str)
// 	for i := 0; i < 2; i++ {
// 		bytes[i] = ' '
// 	}
// 	fmt.Println(string(bytes))
// 	str = ""
// 	fmt.Println(str)
// }

// 字符串格式化输出
import "fmt"

func main() {
	var day = 1
	var hour = 24
	str := fmt.Sprintf("%d天包含%d个小时", day, hour)
	fmt.Println(str)
}
